Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


scripts/sync_version.py ea7ef09660250fa10825adaa09995f6c6c763d6d (ea7ef096) Text, 1.77 KB

T8b949e"""Update project version references to stay aligned with the Electron build.

Reads `package.json`, writes the same version into `src/version.py`, and
updates the `[tool.poetry] version` field inside `pyproject.toml`. Run this
before any Python packaging commands so the wheel version matches the
Electron artifacts.
"""

Tff7b72import T7ee787json
Tff7b72import T7ee787re
Tff7b72from T7ee787pathlib Tff7b72import Te6edf3Path

Te6edf3ROOT Tff7b72= Te6edf3PathTb4b4b4(Tff7b72__file__Tb4b4b4)Tff7b72.Td2a8ffresolveTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffparentsTb4b4b4[T79c0ff1Tb4b4b4]
Te6edf3PACKAGE_JSON Tff7b72= Te6edf3ROOT Tff7b72/ Ta5d6ff"Ta5d6ffpackage.jsonTa5d6ff"
Te6edf3VERSION_PY Tff7b72= Te6edf3ROOT Tff7b72/ Ta5d6ff"Ta5d6ffmeshchatxTa5d6ff" Tff7b72/ Ta5d6ff"Ta5d6ffsrcTa5d6ff" Tff7b72/ Ta5d6ff"Ta5d6ffversion.pyTa5d6ff"
Te6edf3PYPROJECT_TOML Tff7b72= Te6edf3ROOT Tff7b72/ Ta5d6ff"Ta5d6ffpyproject.tomlTa5d6ff"


Tff7b72def Td2a8ffread_package_versionTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Tff7b72with Te6edf3PACKAGE_JSONTff7b72.Td2a8ffopenTb4b4b4(Tb4b4b4) Tff7b72as Te6edf3handleTb4b4b4:
Tff7b72return Te6edf3jsonTff7b72.Td2a8ffloadTb4b4b4(Te6edf3handleTb4b4b4)Tb4b4b4[Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4]


Tff7b72def Td2a8ffwrite_version_moduleTb4b4b4(Te6edf3versionTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Te6edf3content Tff7b72= Tb4b4b4(
Ta5d6ff'Ta5d6ff"Ta5d6ff"Ta5d6ff"Tffea00\nTa5d6ff'
Ta5d6ff"Ta5d6ffAuto-generated helper so Python tooling and the Electron buildTffea00\nTa5d6ff"
Ta5d6ff"Ta5d6ffshare the same version string.Tffea00\nTa5d6ff"
Ta5d6ff'Ta5d6ff"Ta5d6ff"Ta5d6ff"Tffea00\nTffea00\nTa5d6ff'
Ta5d6fffTa5d6ff"Ta5d6ff__version__ = Tffd700{Te6edf3versionTffd700!r}Tffea00\nTa5d6ff"
Tb4b4b4)
Tff7b72if Te6edf3VERSION_PYTff7b72.Td2a8ffexistsTb4b4b4(Tb4b4b4) Tff7b72and Te6edf3VERSION_PYTff7b72.Td2a8ffread_textTb4b4b4(Tb4b4b4) Tff7b72== Te6edf3contentTb4b4b4:
Tff7b72return
Te6edf3VERSION_PYTff7b72.Td2a8ffwrite_textTb4b4b4(Te6edf3contentTb4b4b4)


Tff7b72def Td2a8ffupdate_poetry_versionTb4b4b4(Te6edf3versionTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Tff7b72not Te6edf3PYPROJECT_TOMLTff7b72.Td2a8ffexistsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72return
Te6edf3content Tff7b72= Te6edf3PYPROJECT_TOMLTff7b72.Td2a8ffread_textTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffreplacerTb4b4b4(Te6edf3matchTb4b4b4)Tb4b4b4:
Tff7b72return Ta5d6fffTa5d6ff"Tffd700{Te6edf3matchTff7b72.Td2a8ffgroupTb4b4b4(T79c0ff1Tb4b4b4)Tffd700}Tffd700{Te6edf3versionTffd700}Tffd700{Te6edf3matchTff7b72.Td2a8ffgroupTb4b4b4(T79c0ff2Tb4b4b4)Tffd700}Ta5d6ff"

Te6edf3new_contentTb4b4b4, Te6edf3replaced Tff7b72= Te6edf3reTff7b72.Td2a8ffsubnTb4b4b4(
Ta5d6ffrTa5d6ff'Ta5d6ff(?m)^(versionTa5d6ff\Ta5d6ffs*=Ta5d6ff\Ta5d6ffs*Ta5d6ff"Ta5d6ff)[^Ta5d6ff"Ta5d6ff]*(Ta5d6ff"Ta5d6ff)Ta5d6ff'Tb4b4b4,
Te6edf3replacerTb4b4b4,
Te6edf3contentTb4b4b4,
Te6edf3countTff7b72=T79c0ff1Tb4b4b4,
Tb4b4b4)
Tff7b72if Te6edf3replaced Tff7b72== T79c0ff0Tb4b4b4:
Te6edf3msg Tff7b72= Ta5d6ff"Ta5d6fffailed to update version in pyproject.tomlTa5d6ff"
Tff7b72raise Tf85149RuntimeErrorTb4b4b4(Te6edf3msgTb4b4b4)
Tff7b72if Te6edf3new_content Tff7b72!= Te6edf3contentTb4b4b4:
Te6edf3PYPROJECT_TOMLTff7b72.Td2a8ffwrite_textTb4b4b4(Te6edf3new_contentTb4b4b4)


Tff7b72def Td2a8ffmainTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Te6edf3version Tff7b72= Te6edf3read_package_versionTb4b4b4(Tb4b4b4)
Te6edf3write_version_moduleTb4b4b4(Te6edf3versionTb4b4b4)
Te6edf3update_poetry_versionTb4b4b4(Te6edf3versionTb4b4b4)


Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff"Ta5d6ff__main__Ta5d6ff"Tb4b4b4:
Te6edf3mainTb4b4b4(Tb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────